import {UserConfig, ConfigEnv, loadEnv} from 'vite'  //从vite中获取三个方法
import vue from '@vitejs/plugin-vue'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';  //vite配置第三方图标库
import path from 'path'

//来进行自定义配置
export default ({command, mode}: ConfigEnv): UserConfig => {
  // 获取 .env 环境配置文件
  const env = loadEnv(mode, process.cwd())  //先利用得到的loadEnv方法，加载环境变量文件
//   const env = loadEnv(configEnv.mode, process.cwd()) as ImportMetaEnv; 

  return (
      {
        // console.log(env.VITE_APP_PORT);
          plugins: [
              vue(),
              createSvgIconsPlugin({
                // 指定需要缓存的图标文件夹
                iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
                // 指定symbolId格式
                symbolId: 'icon-[dir]-[name]',
            })
          ],
          // 本地反向代理解决浏览器跨域限制
          server: {
              host: '0.0.0.0', 
              port: Number(env.VITE_APP_PORT),   //将从环境变量文件中得到的值，赋给这里
              open: true, // 启动是否自动打开浏览器
              proxy: {
                  [env.VITE_APP_BASE_API]: { 
                    // target: 'https://api.youlai.tech',
                      target: 'http://localhost:8089/leave/', 
                      changeOrigin: true,
                      rewrite: path => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')  //它组好真实的地址之后，又把代理的关键字去除了。。。。。
                  }
              }
          },
          resolve: {
              alias: {
                  "@": path.resolve("./src") // 相对路径别名配置，使用 @ 代替 src
              }
          }
      }
  )
}
